e.Toscana Compiance 
Request for Comments: RFC_SAL_Regione Toscana
Del: 10/9/2006 
Categoria: Applicativa
Destinatari: Regione Toscana



INDICE
------
Contesto di riferimento
Obiettivi
Lo strumento per integrare i sistemi informativi
Interazioni previste tra Regione e ditte aggiudicatarie
Prodotti attesi
Bibliografia


Contesto di riferimento
-----------------------
Nell'ambito delle attivit di sviluppo tecnologico della Regione Toscana 
sono normalmente pubblicati bandi di concorso per lo svolgimento, 
affidato a ditte esterne aggiudicatarie, di attivit specificate con 
diverso livello di dettaglio dal bando stesso. Sovente sia il 
committente che l'appaltante i lavori si ritrovano a fronteggiare lo 
stesso problema durante l'esecuzione dei lavori, bench da due punti di 
vista diversi: da una lato l'appaltante ha necessit di notificare alla 
Regione Toscana l'avanzamento dei lavori a scadenze periodiche o 
altrimenti contrattualizzate, dall'altro la Regione ha necessit di 
avere il quadro completo dell'avanzamento dei diversi progetti sia per 
motivi di bilancio che di tipo amministrativo. Il contesto di 
riferimento quindi prevede due attori: da un lato un sistema informativo 
della Regione predisposto per ricevere informazioni sullo stato di 
avanzamento di un progetto e dall'altro un agente che invia informazioni 
sullo stato di avanzamento di un progetto dettagliando in modo univoco 
il progetto, il task, il sottotask, la percentuale di avanzamento o il 
numero di giorni utilizzati (o altra unit) ed eventualmente altre 
informazioni di tipo accessorio. 


Obiettivi
---------
Nel contesto appena esposto lobiettivo  realizzare una modalit di 
interazione tra Regione Toscana e ditte aggiudicatarie di progetti per 
la Regione Toscana che usi il sistema di Cooperazione Applicativa 
Regionale Toscana (CART). 


Lo strumento per integrare i sistemi informativi
------------------------------------------------
Regione Toscana ha realizzato linfrastruttura CART (Cooperazione 
Applicativa Regionale Toscana) utilizzabile al fine di integrare 
applicazioni di Enti diversi. Lobiettivo dellinfrastruttura  la 
creazione di una comunit di Soggetti che espongono e integrano le loro 
applicazioni per mezzo di servizi con la finalit di creare uno spazio 
comune di informazioni alimentato e fruito dai sistemi informativi dei 
Soggetti partecipanti. 

Lutilizzo dellinfrastruttura di cooperazione applicativa rende 
possibile:  il reperimento di informazioni messe a disposizione dalla 
comunit con estrema naturalezza e con costi minimi  larricchimento 
delle proprie informazioni con altre reperite dalla comunit con estrema 
naturalezza e con costi minimi  la distribuzione delle applicazioni che 
condividono informazioni  minimizzazione dei costi necessari per 
adempiere ad un debito informativo verso altri Soggetti 


Interazioni previste tra Regione e ditte aggiudicatarie
-------------------------------------------------------
Nello scenario esposto le interazioni tra i due attori Regione Toscana e 
ditta che esegue i lavori sono di due tipi: 
1. invio di un SAL (Stato Avanzamento Lavori) alla Regione da parte 
della ditta con risposta sincrona da parte della Regione sullo stato 
della registrazione dello stesso 
2. interrogazione dello stato corrente del SAL da parte di una ditta. 
Possibili risultati possono essere ad esempio: "registrato", "rifiutato", "in 
attesa di approvazione", "approvato". 

Si possono definire quindi i due casi d'uso:
C1 - "Ditta invia SAL a Regione Toscana" 
e
C2 - "Ditta interroga stato SAL" 
esaminati nel dettaglio di seguito.

Concettualmente l'oggetto scambiato  di tipo "SAL" con i seguenti attributi: 

a)identificativo_sal (ad esempio progressivo)
b)identificativo_ditta (assegnato dalla Regione)
c)identificativo_progetto (assegnato dalla Regione)
d)identificativo_dipartimento
e)identificativo_ufficio
f)classificatore
g)firma_digitale_ditta
h)sigla_workpackage
i)numero_task
l)g.u._SAL (il numero di giorni effettivi del SAL per quel task)
m)data_prevista_completamento_task
n)data_effettiva_completamento_task
o)percentuale_avanzamento (la percentuale di completamento)
p)milestone (per indicare il superamento di una milestone)

Esiste concettualmente una fase di "provisioning" a monte del primo 
invio del primo SAL: in questa fase vengono forniti dalla Regione alla 
ditta esecutrice identificativi unici per il progetto, per la ditta 
stessa e una chiave per la firma del messaggio. 


CU1  Ditta invia SAL a Regione Toscana
----------------------------------------
In questo caso d'uso la ditta invia le informazioni su un SAL, descritte 
dai suoi attributi, in un messaggio firmato, rimanendo in attesa di una 
risposta sull'esito della registrazione da parte della Regione Toscana. 
La risposta esplicita lo stato limitatamente a "registrato" oppure "non 
registrato" specificandone la motivazione che potr essere ad esempio: 
firma non riconosciuta, errore nel formato, identificativo della ditta 
o del progetto non validi. Ovvero, la risposta della Regione si limita a 
una verifica formale/sintattica e non sul contenuto del SAL. Data la 
semplicit un paradigma di tipo SOA pare sufficiente a supportare lo 
scambio del messaggio.
La firma, necessaria per certificare la sicurezza del messaggio, 
segue lo standard W3C XML Signature (http://www.w3.org/TR/xmldsig-core/)
 
Un possibile messaggio di invio SAL pu essere cos descritto:

<?xml version="1.0" encoding="iso-8859-1"?>
<Sal>
	<Signature Id="SAL_signature" xmlns="http://www.w3.org/2000/09/xmldsig#"> 
		<SignedInfo> 
			<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> 
			<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> 
			<Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/"> 
				<Transforms> 
					<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> 
				</Transforms> 
				<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> 
				<DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> 
			</Reference> 
		</SignedInfo> 
		<SignatureValue>MC0CFFrVLtRlk=...</SignatureValue> 
		<KeyInfo> 
		<KeyValue>
		<DSAKeyValue> 
		<P>...</P><Q>...</Q><G>...</G><Y>...</Y> 
		</DSAKeyValue> 
		</KeyValue> 
		</KeyInfo> 
	</Signature>
	<IdSal>12345</IdSal>
	<IdDitta>ACOMPANY</IdDitta>
	<IdPrj>1234</IdPrj>
	<IdDip>info</IdDip>
	<IdUff>info<IdUff>
	<Classificatore>sviluppo tecnologico</Classificatore>
	<Wp>01<Wp/>
	<Task>t01</Task>
	<SalValue>100</SalValue>
	<Unit>gu</Unit>
	<DueDate>10/10/2008</DueDate>
	<ActDate>10/09/2008</ActDate>
	<SalPerc>80</SalPerc>
	<Milestone>n</Milestone>
</Sal>

La risposta sincrona al messaggio di notifica di un SAL si pu descrivere come:

<SalResult>
	<Signature>
	...
	</Signature>
	<IdSal>12345</IdSal>
	<IdDitta>ACOMPANY</IdDitta>
	<IdPrj>1234</IdPrj>
	<IdDip>info</IdDip>
	<IdUff>info<IdUff>
	<ResultCode>_code_</ResultCode>
	<ResultInfo>_info_</ResultInfo>
</SalResult>

L'elemento <ResultCode> restituisce il codice:
0: Registrato
1: Non registrato

L'elemento <ResultInfo> d informazioni per i casi di errore:
"Firma non valida"
"Ditta o numero SAL, non riconosciuto"
"SAL gi precedentemente registrato"


 
CU2  Ditta interroga stato SAL
-------------------------------
Poich la registrazione del SAL non restituisce una risposta sulla sua 
approvazione dal momento che necessita di un intervento umano di tipo 
asincrono per la verifica,  necessario predisporre un messaggio di 
richiesta della stato del SAL. In questo caso il paradigma EDA  
particolarmente utile per notificare alla Regione la richiesta dello stato 
del SAL e attendere la risposta in modo asincrono. La ditta pubblica 
sulla infrastruttura di cooperazione applicativa una notifica firmata 
che richiede lo stato di uno specifico SAL alla Regione. L'infrastruttura 
di cooperazione applicativa invia un messaggio al sistema informativo 
della Regione che in modo asincrono rispetto alla richiesta recuperer i 
dati necessari e li pubblicher sotto forma di risposta tramite 
l'infrastruttura di cooperazione applicativa. 
La firma  codificata, come nel CU1 secondo lo standard W3C XML Signature 
(http://www.w3.org/TR/xmldsig-core/). Per leggibilit di seguito  solo indicato 
l'elememento <Signature>

Il messaggio con il quale la ditta interroga la Regione ha lo schema seguente:

<?xml version="1.0" encoding="iso-8859-1"?>
<SalStatusRequest>
	<Signature>
	...
	</Signature>
	<IdSal>12345</IdSal>
	<IdDitta>ACOMPANY</IdDitta>
	<IdPrj>1234</IdPrj>
	<Wp>01<Wp/>
	<Task>t01</Task>
</SalStatusRequest>


Il messaggio di risposta ha questo schema:

<?xml version="1.0" encoding="iso-8859-1"?>
<SalStatus>
	<Signature>
	...
	</Signature>
	<IdSal>12345</IdSal>
	<IdDitta>ACOMPANY</IdDitta>
	<IdPrj>1234</IdPrj>
	<Wp>01<Wp/>
	<Task>t01</Task>
	<StatusCode>0</StatusCode>
	<StatusInfo>Approvato</StatusInfo>
</SalStatus>

L'elemento <StatusCode> restituisce il codice:
0: Approvato
1: In attesa
2: Rifiutato

L'elemento <StatusInfo> d informazioni per i casi di errore:
"Non valido"
"Avanzamento contestato"


Prodotti attesi
---------------
-Un XML-schema per ogni tipologia di messaggio che ne stabilisce la correttezza sintattica
-Un documento per esplicitare la semantica dei messaggi
-WSDL che i soggetti partecipanti dovranno utilizzare notificare dei messaggi alla PdD


Bibliografia
------------
Documenti rilasciati dal Centro Nazionale per lInformatica nella Pubblica
Amministrazione (CNIPA): [CN1] SPC, Sistema pubblico di cooperazione:
Architettura, Versione 1.0, CNIPA, 25 Novembre 2004. [CN2] SPC, Sistema
pubblico di cooperazione: Porta di Dominio, Versione 1.0, CNIPA, 14 Ottobre
2005
